The USB provides a communication system for the transfer of data between devices in a host system, such as a personal computer or similar microprocessor based system. FIG. 1 illustrates an example of a system 100 that utilizes a Universal Serial Bus 142 to communicate with peripheral units 150, 160 and 170. A processor 110 sends and receives data through a host system bus 114 via a memory management unit (MMU) 112. Also connected to host system bus are host system memory 120 and USB host controller (HC) 140. The USB Host Controller (HC) is a hardware device that handles communication between the host system and peripheral devices, such as devices 150, 160 and 170, coupled to the USB 142. Note that each device 150, 160 and 170 is connected to a unique USB port and do not share the actual physical communication medium.
The USB Host Controller (HC) transfers data between the host system bus 114 and the USB 142 by providing an interface between a software driver (the Host Controller Driver (HCD)), resident on the host system microprocessor 110 and host system memory 120, and the Universal Serial Bus (USB) 142. The Host Controller processes data lists constructed by the HCD for data transmission over the USB and typically stored in host system memory 120.
Prior art USB communication systems for bursted communication channels, such as for a USB-Ethernet adapter 160, typically operate by performing bulk data transfers. This is done by the class driver issuing a bulk-in command or bulk read command for the endpoint device. On an OHCI based system, the USB stack then defines a Transfer Descriptor having an appropriate size buffer, and associating that Transfer Descriptor with the burst communication device's Bulk-type Endpoint Descriptor. While the prior art techniques include communication devices using an interrupt channel to provide link status information, it was not used to convey information regarding the presence of data. While providing an adequate data transfer mechanism, the prior art technique has a disadvantage in that a bulk endpoint transfer descriptor may potentially be processed many times in a given bus cycle, or frame (or across many such frames), which results in host system resources being occupied during the time that the HC is retrieving the EDs and TDs over system bus 114. Therefore, a more efficient approach to communication over the USB is desirable.